Repository navigation
Conversation
|
|
Security source/trust-boundary PASS for exact head Independent review evidence:
No source trust-boundary blocker remains. This verdict does not admit a generic Docker/Composer caller and does not bypass the failing central action-policy preflight. General's policy change must bind this exact repository/helper/control set, its own checks must pass, and every required #341 check must be green before merge. Merge only at this exact head; any source or policy-relevant identity change requires counter-review. |
|
Independent PHP SDK reuse review of exact head I reviewed the Dockerfile, pinned image map, setup/launcher, actual Composer TLS control, changed workflow call sites and launcher tests. No additional blocking finding on those changed surfaces:
I did not rerun the Sample App matrix or claim whole-CI/container qualification. General’s scoped policy recognition and Security’s verdict remain their respective gates. SDK adaptation note: our lint step currently calls PHP once per file. Wrapping that unchanged would create hundreds of Docker launches; the SDK migration should run the existing lint work inside one runtime invocation. Our remaining required profiles are PHP8.1/8.2/8.3/8.4 with pcntl/posix, without the Sample App database/visual extension superset. No SDK image build has started or borrowed this result as its own installed acceptance. |



The remaining PHP setup jobs still execute mutable upstream installer and archive bytes behind a pinned setup-php action. Replace them with digest-pinned official PHP 8.4/8.5 images while preserving both Laravel matrices, their extensions, production INI, coverage-none behavior and the PHP/Python/Rust playground journeys.
The repository Dockerfile reuses the accepted fixed-APT guard, pinned phpredis source, Composer 2.10.3 and Node 22.23.4. Small
phpandcomposerlaunchers run in that image while host Python/Rust/Docker remain available to the playground. Existing Composer trust guards execute in the container against the actual PHAR and authenticated CA bundle. The launcher passes selected CI/application settings and separate playground role credentials, and excludes workflow tokens and Composer authentication.The launcher binds the inspected immutable image config ID. Every setup runs a real Composer HTTPS control: ambient CA configuration reaches a loopback fixture, while the selected clean bundle refuses TLS before any HTTP request. Synthetic keys are removed before Docker mounts, and the server requires TLS 1.2.
Validation: 73 source-security tests pass (the built-image test is separately run on actual PHP 8.4/8.5 images). Both images pass extension, production INI, coverage-none, PHAR version/hash, clean-CA, bad-digest, blocked-root and actual HTTPS controls. All six migrated caller jobs pass on exact head
5983101, including per-setup TLS controls; CodeQL is green. Other normal checks are completing. Exact source and tool evidence is recorded on the shared issue. General owns the remaining scoped policy admission. Security independently approved this exact source, conditional on that policy binding and every required check passing.Refs #340 and durable-workflow/.github#297. This does not change the package tuple in #338/#339.